package request

// LoginRequest 登录请求
type LoginRequest struct {
	Username string `json:"username" binding:"required" example:"admin"`  // 用户名
	Password string `json:"password" binding:"required" example:"123456"` // 密码
	Captcha  string `json:"captcha" example:"1234"`                       // 验证码
	Key      string `json:"key" example:"captcha_key"`                    // 验证码key
	IP       string `json:"-"`                                            // 用户IP（后端补充）
}

// UserListRequest 用户列表请求
type UserListRequest struct {
	Page     int    `form:"page" binding:"required,min=1" example:"1"`       // 页码
	PageSize int    `form:"page_size" binding:"required,min=1" example:"10"` // 每页数量
	Keyword  string `form:"keyword" example:"admin"`                         // 搜索关键词
	Status   *int   `form:"status" example:"1"`                              // 状态：1-启用 2-禁用
}

// UserCreateRequest 创建用户请求
type UserCreateRequest struct {
	Username string `json:"username" binding:"required" example:"admin"`                // 用户名
	Password string `json:"password" binding:"required" example:"123456"`               // 密码
	Nickname string `json:"nickname" binding:"required" example:"管理员"`                  // 昵称
	Email    string `json:"email" binding:"required,email" example:"admin@example.com"` // 邮箱
	Phone    string `json:"phone" binding:"required" example:"13800138000"`             // 手机号
	RoleID   uint   `json:"role_id" binding:"required" example:"1"`                     // 角色ID
	Status   int    `json:"status" binding:"required,oneof=1 2" example:"1"`            // 状态：1-启用 2-禁用
}

// UserUpdateRequest 更新用户请求
type UserUpdateRequest struct {
	ID       uint   `json:"-"`                                                          // 用户ID（从URL参数获取）
	Nickname string `json:"nickname" binding:"required" example:"管理员"`                  // 昵称
	Email    string `json:"email" binding:"required,email" example:"admin@example.com"` // 邮箱
	Phone    string `json:"phone" binding:"required" example:"13800138000"`             // 手机号
	RoleID   uint   `json:"role_id" binding:"required" example:"1"`                     // 角色ID
	Status   int    `json:"status" binding:"required,oneof=1 2" example:"1"`            // 状态：1-启用 2-禁用
}

// UserStatusRequest 用户状态请求
type UserStatusRequest struct {
	ID     uint `json:"id" binding:"required" example:"1"`               // 用户ID
	Status int  `json:"status" binding:"required,oneof=1 2" example:"1"` // 状态：1-启用 2-禁用
}

// PasswordUpdateRequest 修改密码请求
type PasswordUpdateRequest struct {
	OldPassword string `json:"old_password" binding:"required" example:"123456"` // 原密码
	NewPassword string `json:"new_password" binding:"required" example:"654321"` // 新密码
}

// ProfileUpdateRequest 更新个人信息请求
type ProfileUpdateRequest struct {
	Nickname string `json:"nickname" binding:"required" example:"管理员"`                  // 昵称
	Email    string `json:"email" binding:"required,email" example:"admin@example.com"` // 邮箱
	Phone    string `json:"phone" binding:"required" example:"13800138000"`             // 手机号
}
